/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Pesistencia;

import BancoDados.BancoDados;
import Entidade.ItemCompraModel;
import Entidade.ProdutoModel;
import Entidade.VendaModel;
import java.sql.ResultSet;
import java.util.ArrayList;

/**
 *
 * @author Thalyta
 */
public class VendaPersistencia {
   BancoDados bd;
      
      
       public ArrayList<VendaModel> getListaProdutos() {
        try {
            ResultSet rs = bd.consultar("SELECT * FROM venda");
            ArrayList<VendaModel> retorno = new ArrayList<>();
            while(rs.next()){
           
                VendaModel p = new VendaModel(rs.getInt("codVenda"), rs.getInt("codCliente"), rs.getInt("codVendedor"), rs.getDouble("Desconto"), rs.getString("Forma_Pagamento"), rs.getDouble("Valor"));
                        retorno.add(p);
            }
            return retorno;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

       public double total() {
      double tota = 0;
        try {
            ResultSet rs = bd.consultar("SELECT * FROM venda");
            ArrayList<VendaModel> retorno = new ArrayList<>();
            while(rs.next()){
           
                VendaModel p = new VendaModel(rs.getInt("codVenda"), rs.getInt("codCliente"), rs.getInt("codVendedor"), rs.getDouble("Desconto"), rs.getString("Forma_Pagamento"), rs.getDouble("Valor"));
                        retorno.add(p);
                        tota = tota + p.getValorTotal();
            }
            return tota;
        } catch (Exception e) {
            e.printStackTrace();
            return tota;
        }
    }
  
    public VendaPersistencia(BancoDados bd) {
        this.bd = bd;
    }

    public void cadastrar( VendaModel venda) {
        try {
            bd.atualizar("INSERT INTO venda (codVenda,Valor,Desconto,Forma_Pagamento,codVendedor,codCliente) VALUES ("+venda.getCod()+" ,"+venda.getValorTotal()+" ,"+venda.getDesconto()+" , '"+venda.getFormapagamento()+"'  ,"+venda.getVendedor()+","+venda.getCliente()+")");
           
            System.out.println ("INSERT INTO venda (codVenda,Valor,Desconto,Forma_Pagamento,codVendedor,codCliente) VALUES ("+venda.getCod()+" ,'"+venda.getValorTotal()+"' ,"+venda.getDesconto()+" , '"+venda.getFormapagamento()+"'  ,'"+venda.getVendedor()+"','"+venda.getCliente()+"')");
           } catch (Exception e) {
            e.printStackTrace();
        }
        
    }

    public  VendaModel buscar(int codigo) {
        try {
            ResultSet rs = bd.consultar("SELECT * FROM venda WHERE codVenda = "+codigo);
            rs.next();
             VendaModel retorno;
            if(rs.getRow() == 0){
                retorno = null;
            } else {
                retorno = new  VendaModel(rs.getInt("codVenda"), rs.getInt("codCliente"), rs.getInt("codVendedor "), rs.getDouble("Desconto"), rs.getString("Forma_Pagamento"), rs.getDouble("Valor"));
                      }
            return retorno;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }


    

    

    public int recuperarUltimoCodigo() {
        try {
            ResultSet rs = bd.consultar("SELECT MAX(codVenda) FROM venda");
            rs.next();
            int retorno;
            if(rs.getRow() == 0){
                retorno = 0;
            } else {
                retorno = rs.getInt("MAX(codVenda)");
            }
            return retorno;
        } catch (Exception e) {
            e.printStackTrace();
            return -1;
        }
    }

    public void excluir(VendaModel venda) {
        try {
            bd.atualizar("DELETE FROM venda WHERE (codVenda = "+venda.getCod()+")");

            System.out.println("DELETE FROM venda WHERE (codVenda = "+venda.getCod()+")");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public void listar()
    {
        try {
            bd.atualizar("select * FROM venda; ");

            System.out.println("select * FROM venda; ");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
     
}
